/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hr.fer.zpr.nmbp.project2.model;

import java.io.Serializable;
import javax.persistence.*;

@Entity
@Table(name="PACIJENT"
    ,schema="PUBLIC"
    ,catalog="EBOLNICA"
)
public class Pacijent implements Serializable {

    private String mbo;     //primarni ključ, matični broj osiguranika
    private String ime;
    private String prezime;
    
    private Lijecnik lijecnik;
    private Karton karton;

        public Pacijent() {
    }

	
    public Pacijent(String mbo) {
        this.mbo = mbo;
    }
    public Pacijent(String mbo, Lijecnik lijecnik, String ime, String prezime, Karton karton) {
       this.mbo = mbo;
       this.lijecnik = lijecnik;
       this.ime = ime;
       this.prezime = prezime;
       this.karton = karton;
    }

    @Column(name="IME")
    public String getIme() {
        return ime;
    }

    public void setIme(String ime) {
        this.ime = ime;
    }

    @OneToOne(fetch=FetchType.EAGER, mappedBy="pacijent")
    public Karton getKarton() {
        return karton;
    }

    public void setKarton(Karton karton) {
        this.karton = karton;
    }

    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="LIJECNIK_SIFRA")
    public Lijecnik getLijecnik() {
        return lijecnik;
    }

    public void setLijecnik(Lijecnik lijecnik) {
        this.lijecnik = lijecnik;
    }

    @Id
    @Column(name="MBO", unique=true, nullable=false)
    public String getMbo() {
        return mbo;
    }

    public void setMbo(String mbo) {
        this.mbo = mbo;
    }

    @Column(name="PREZIME")
    public String getPrezime() {
        return prezime;
    }

    public void setPrezime(String prezime) {
        this.prezime = prezime;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Pacijent other = (Pacijent) obj;
        if ((this.mbo == null) ? (other.mbo != null) : !this.mbo.equals(other.mbo)) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 97 * hash + (this.mbo != null ? this.mbo.hashCode() : 0);
        return hash;
    }

    @Override
    public String toString() {
        return prezime +" "+ ime +" ("+ mbo +")";
    }
    
}